<?php
/*
 * прокидываю массив partial, если он пустой или null, то строю всю форму, если нет, или то нужно вернуть аяксом (перерисовать)
 * только те элементы, которые указаны в этом массиве
 */
$partialForm = $params['partial'];
?>


<?php if (!$partialForm) {	?>
<form <?php echo $htmlOptions ?>>
<?php } ?>
<?php
$slaves = array();
foreach($params['elements'] as $elementName => $element) {
	if ($element->isSlave()) {
		if (empty($slaves[$element->getMasterName()])) {
			$slaves[$element->getMasterName()] = '';
		}
		//echo $element->getMasterName();
		$slaves[$element->getMasterName()][] = '<div class="element-block" id="slave-' . $elementName . '" data-master="' . $element->getMasterName() . '">' .
				$element->render($element->getStyle()) . '</div>';
	}
}

foreach($params['elements'] as $elementName => $element) {
	if ($partialForm && (!$element->isPartial())) {
		continue;
	}
	
	if ($element->isMaster()) { ?>
	<div class="master-element-container">
		<?php if ($element->dividerBefore()) { ?>
		<hr>
		<?php } ?>
		<div class="element-block" data-element="master" id="master-<?php echo $elementName ?>">
			<?php echo $element->render($element->getStyle()); ?>
		</div>
		<div class="slaves">
			<?php if (!empty($slaves[$elementName])) {
				echo implode('', $slaves[$elementName]);
				} ?>
		</div>
		<?php if ($element->dividerAfter()) { ?>
		<hr>
		<?php } ?>
	</div>
<?php }
}
//	$slaveElements = $element->getSlaveElements();
//	foreach ($slaveElements as $slaveElement) {
//		echo $slaveElements->render();
//	}
?>
<?php if (!$partialForm) { ?>
</form>
<?php } ?>